// license-header java merge-point
package edu.uoc.tfc.gui.home.meuPerfil;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.acegisecurity.ui.webapp.AuthenticationProcessingFilter;
import org.apache.struts.action.ActionMapping;

import edu.uoc.tfc.gui.common.Level;
import edu.uoc.tfc.gui.common.MissatgeAjax;
import edu.uoc.tfc.gui.common.ResultatAccioAjaxVO;

/**
 * @see edu.uoc.tfc.gui.home.meuPerfil.PerfilController
 */
public class PerfilControllerImpl extends PerfilController
{
    /**
     * @see edu.uoc.tfc.gui.home.meuPerfil.PerfilController#obtenirUsuari(org.apache.struts.action.ActionMapping, edu.uoc.tfc.gui.home.meuPerfil.ObtenirUsuariForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    public final void obtenirUsuari(ActionMapping mapping, edu.uoc.tfc.gui.home.meuPerfil.ObtenirUsuariForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
    {
    	String userSession = (String)
    			request.getSession().getAttribute(AuthenticationProcessingFilter.ACEGI_SECURITY_LAST_USERNAME_KEY);
    	
    	form.setPerfil(getSecurityService().getUsuariPerfil(userSession));
    	
    }

    /**
     * @see edu.uoc.tfc.gui.home.meuPerfil.PerfilController#modificaUsuari(org.apache.struts.action.ActionMapping, edu.uoc.tfc.gui.home.meuPerfil.ModificaUsuariForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    public final void modificaUsuari(ActionMapping mapping, edu.uoc.tfc.gui.home.meuPerfil.ModificaUsuariForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
    {
    	if (form.getPerfil().getPassword().equals(form.getPerfil().getRePassword())){
	    	getSecurityService().
				modificarUsuariPerfil(form.getPerfil());
			MissatgeAjax missatge = new MissatgeAjax("cu.perfil.success", null, Level.Success);
			ResultatAccioAjaxVO resultat = new ResultatAccioAjaxVO();
			resultat.addMessage(missatge);
			form.setResultat(resultat);
    	}else{
			MissatgeAjax missatge = new MissatgeAjax("cu.perfil.password.incorrecte", null, Level.Error);
			ResultatAccioAjaxVO resultat = new ResultatAccioAjaxVO();
			resultat.addMessage(missatge);
			form.setResultat(resultat);    		    		
    	}
    }

}